Graphical analysis, simulation, and execution tools may be used in modeling, design, analysis, and synthesis of engineered systems. These tools provide a visual representation of a model, such as a block diagram. The visual representation provides a convenient interpretation of model components and structure.
Block diagrams are used to model real-world systems. Historically, engineers and scientists have utilized time-based block diagram models in numerous scientific areas, such as, for example, Feedback Control Theory and Signal Processing, to study, design, debug, and refine dynamic systems. Dynamic systems, which are characterized by the fact that their behaviors change over time, are representative of many real-world systems.
A dynamic system is a system whose response at any given time is a function of its input stimuli, its current state, and the current time. Such systems range from simple to highly complex systems. Physical dynamic systems include a falling body, the rotation of the earth, bio-mechanical systems (muscles, joints, etc.), bio-chemical systems (gene expression, protein pathways), etc. Examples of man-made or engineered dynamic systems include: a bouncing ball, a spring with a mass tied on an end, automobiles, airplanes, control systems in major appliances, communication networks, audio signal processing, nuclear reactors, and a stock market.
A block diagram model of a dynamic system is represented schematically as a collection of blocks interconnected by lines that represent signals. A signal represents the input and output of a dynamic system. Each block represents an elemental dynamic system. A line emanating at one block and terminating at another signifies that the output of the first block is an input to the second block. Each distinct input or output on a block is referred to as a port. Signals correspond to the time-varying quantities represented by each line connection and are assumed to have values at each time instant at which the connecting blocks are enabled. The source block of a signal writes to the signal at a given time instant when its system equations are solved. The destination blocks of this signal read from the signal when their system equations are solved.
Time-based block diagram models may be thought of as relationships between signals and state variables representative of a dynamic system. The solution—computation of system response—of the model is obtained by evaluating these relationships over time. The time-based relationship may start at a user-specified “start time” and end at a user-specified “stop time”, or the evaluations may continue indefinitely. Each evaluation of these relationships is part of a time step. Signals represent quantities that change over time, and these quantities are defined for all points in time between the block diagram's start and optional stop time. The relationships between signals and state variables are defined by sets of equations represented by blocks. These equations define a relationship between the input signals, output signals, state, and time.
The term “block diagram” as used herein is also used to refer to other graphical modeling formalisms. For instance, flow-charts are block diagrams of entities that are connected by relations. Flow-charts are used to capture process flow and are not generally suitable for describing dynamic system behavior. Data flow block diagrams are diagrams of entities with relations between them that describe a graphical programming paradigm where the availability of data is used to initiate the execution of blocks, where a block represents an operation and a line represents execution dependency describing the direction of data flowing between blocks. It will be appreciated that a block diagram model may include entities that are based on other modeling domains within the block diagram. A common characteristic among these various forms of block diagrams is that they define semantics on how to execute them.
As noted above, professionals from diverse areas such as engineering, science, education, and economics build computational models of dynamic systems in order to better understand system behavior as it changes with the progression of time. The computational models aid in building “better” systems, where “better” may be defined in terms of a variety of performance measures such as quality, time-to-market, cost, speed, size, power consumption, robustness, etc. The computational models also aid in analyzing, debugging and repairing existing systems, be it the human body or the anti-lock braking smystem in a car. The models may also serve an educational purpose of educating others on the basic principles governing physical systems. The models and results are often used as a scientific communication medium between humans. The term “model-based design” is used to refer to the use of block diagram models in the development, analysis, and validation of dynamic systems.
As systems become more complex, an increasingly large amount of time and effort is involved in creating accurate, detailed models. These models are typically hybrid dynamic systems that span a variety of domains, including continuous dynamics and discrete behavior, physical connections, and event-driven states. To add to the complexity, these systems may be depicted in a number of ways, including dynamic or physics block diagrams, finite state machines, and hand-written or automatically generated computer code.
Multiple solvers may be employed to simulate a model. These solvers may be instances of the same solver and/or multiple different solvers working in parallel. The subsystems on which the solvers operate may have continuous and/or discrete states. Major and minor time steps are used during simulation of models with continuous states by solvers. The minor time step is a subdivision of the major time step and is used as part of the solver algorithm.